home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Essentials / Developer Essentials May91 / MPW Interfaces & Libraries 3.2 / AIncludes / DatabaseAccess.a < prev    next >
Encoding:
Text File  |  1991-04-17  |  6.1 KB  |  296 lines  |  [TEXT/MPS ]

  1. ; Created: Monday, March 20, 1989 at 10:00:00 AM
  2. ;
  3. ; File: DatabaseAccess.a
  4. ;
  5. ; Assembler Interface to the Macintosh Libraries
  6. ; Copyright Apple Computer, Inc. 1989-1991
  7. ; All Rights Reserved
  8. ;
  9. ;___________________________________________________________________________
  10.  
  11.     IF &TYPE('__INCLUDINGDATABASEACCESS__') = 'UNDEFINED' THEN
  12. __INCLUDINGDATABASEACCESS__    SET    1
  13.  
  14. ; error and status codes
  15.  
  16. rcDBNull          EQU         -800
  17. rcDBValue         EQU         -801
  18. rcDBError         EQU         -802
  19. rcDBBadType       EQU         -803
  20. rcDBBreak         EQU         -804
  21. rcDBExec          EQU         -805
  22. rcDBBadSessID     EQU         -806
  23. rcDBBadSessNum    EQU         -807
  24.  
  25. rcDBBadDDEV       EQU         -808
  26.  
  27. rcDBAsyncNotSupp  EQU         -809
  28. rcDBBadAsyncPB    EQU         -810
  29.  
  30. rcDBNoHandler     EQU         -811
  31.  
  32. rcDBWrongVersion  EQU         -812
  33. rcDBPackNotInited EQU         -813
  34.  
  35. ; messages for status functions for DBStartQuery
  36.  
  37. kDBUpdateWind     EQU         0
  38. kDBAboutToInit    EQU         1
  39. kDBInitComplete   EQU         2
  40. kDBSendComplete   EQU         3
  41. kDBExecComplete   EQU         4
  42. kDBStartQueryComplete EQU    5
  43.  
  44. ; messages for status functions for DBGetQueryResults
  45.  
  46. kDBGetItemComplete EQU        6
  47. kDBGetQueryResultsComplete EQU    7
  48.  
  49. ; DBType codes
  50.  
  51. typeNone          EQU         'none'
  52. typeBoolean       EQU         'bool'
  53. typeSMInt         EQU         'shor'
  54. typeInteger       EQU         'long'
  55. typeSMFloat       EQU         'sing'
  56. typeFloat         EQU         'doub'
  57. typeDate          EQU         'date'
  58. typeTime          EQU         'time'
  59. typeTimeStamp     EQU         'tims'
  60. typeChar          EQU         'TEXT'
  61. typeDecimal       EQU         'deci'
  62. typeMoney         EQU         'mone'
  63. typeVChar         EQU         'vcha'
  64. typeVBin          EQU         'vbin'
  65. typeLChar         EQU         'lcha'
  66. typeLBin          EQU         'lbin'
  67. typeDiscard       EQU         'disc'
  68.  
  69. ; "dummy" types for DBResultsToText
  70.  
  71. typeUnknown       EQU         'unkn'
  72. typeColBreak      EQU         'colb'
  73. typeRowBreak      EQU         'rowb'
  74.  
  75. ; pass this in to DBGetItem for any data type
  76.  
  77. typeAnyType       EQU         0
  78.  
  79. ; infinite timeout value for DBGetItem
  80.  
  81. kDBWaitForever    EQU         -1
  82.  
  83. ; flags for DBGetItem
  84.  
  85. kDBLastColFlag    EQU         1
  86. kDBNullFlag        EQU         4
  87.  
  88. ; structure for asynchronous parameter block
  89.  
  90. DBAsyncParamBlockRec RECORD   0
  91. completionProc    DS.L        1                         ; pointer to completion routine
  92. result            DS.W        1                         ; result of call
  93. userRef           DS.L        1                         ; for application's use
  94. ddevRef           DS.L        1                         ; for ddev's use
  95. reserved          DS.L        1                         ; for internal use
  96. DBAsyncParmBlkSize EQU        *
  97.                   ENDR
  98.  
  99. ; structure for resource list in QueryRecord
  100.  
  101. ResListElem       RECORD      0
  102. theType           DS.L        1
  103. id                DS.W        1
  104. ResListElemSize   EQU         *
  105.                   ENDR
  106.  
  107. QueryRecord       RECORD      0
  108. version           DS.W        1                         ; version
  109. id                DS.W        1                         ; id of 'qrsc' this came from
  110. queryProc         DS.L        1                         ; handle to query def proc
  111. ddevName          DS.B        64                        ; ddev name
  112. host              DS.B        256                       ; host
  113. user              DS.B        256                       ; user
  114. password          DS.B        256                       ; password
  115. connStr           DS.B        256                       ; other connection info
  116. currQuery         DS.W        1                         ; current query
  117. numQueries        DS.W        1                         ; number of queries in queryList
  118. queryList         DS.L        1                         ; handle to list of queries
  119. numRes            DS.W        1                         ; number of resources in resList
  120. resList           DS.L        1                         ; handle to list of other resources
  121. dataHandle        DS.L        1                         ; data used by query def proc
  122. refCon            DS.L        1                         ; query's reference value
  123. QueryRecordSize   EQU         *
  124.                   ENDR
  125.  
  126. DBColInfoRecord RECORD      0
  127. len                   DS.W        1
  128. places           DS.W        1
  129. flags           DS.W        1
  130. DBColInfoRecordSize EQU     *
  131.                   ENDR
  132.  
  133. ResultsRecord     RECORD      0
  134. numRows           DS.W        1                         ; number of rows in result
  135. numCols           DS.W        1                         ; number of columns per row
  136. colTypes          DS.L        1                         ; data type array
  137. colData           DS.L        1                         ; actual results
  138. colInfo           DS.L        1                         ; DBColInfoRecord array
  139. ResultsRecordSize EQU         *
  140.                   ENDR
  141.  
  142. ;
  143. ; Routine Selectors
  144. ;
  145.  
  146. InitDBPack        EQU         $0100
  147. DBInit            EQU         $0E02
  148. DBEnd             EQU         $0403
  149. DBGetConnInfo     EQU         $1704
  150. DBGetSessionNum   EQU         $0605
  151. DBSend            EQU         $0706
  152. DBSendItem        EQU         $0B07
  153. DBExec            EQU         $0408
  154. DBState           EQU         $0409
  155. DBGetErr          EQU         $0E0A
  156. DBBreak           EQU         $050B
  157. DBGetItem         EQU         $100C
  158. DBUnGetItem       EQU         $040D
  159. DBKill            EQU         $020E
  160. DBGetNewQuery     EQU         $030F
  161. DBDisposeQuery    EQU         $0210
  162. DBStartQuery      EQU         $0811
  163. DBGetQueryResults EQU         $0A12
  164. DBResultsToText   EQU         $0413
  165. DBInstallResultHandler EQU   $0514
  166. DBRemoveResultHandler EQU    $0215
  167. DBGetResultHandler EQU       $0516
  168.  
  169. ;
  170. ; For package invocation
  171. ; First arg is routine selector, second is the trap
  172. ; Slightly modified from PackMacs.a to pass selector in D0,
  173. ; and always call Pack13.
  174. ;
  175.  
  176.                   MACRO
  177.                   _Pack13Call
  178.                   MOVE.W      &SYSLIST[1],D0
  179.                   _Pack13
  180.                   ENDM
  181.  
  182. ;
  183. ; Database Access Manager routines
  184. ;
  185.                   MACRO
  186.                   _InitDBPack
  187.                   MOVE.W      #$0004, -(A7)             ; push version number
  188.                   _Pack13Call #InitDBPack
  189.                   ENDM
  190.  
  191.                   MACRO
  192.                   _DBInit
  193.                   _Pack13Call #DBInit
  194.                   ENDM
  195.  
  196.                   MACRO
  197.                   _DBEnd
  198.                   _Pack13Call #DBEnd
  199.                   ENDM
  200.  
  201.                   MACRO
  202.                   _DBGetConnInfo
  203.                   _Pack13Call #DBGetConnInfo
  204.                   ENDM
  205.  
  206.                   MACRO
  207.                   _DBGetSessionNum
  208.                   _Pack13Call #DBGetSessionNum
  209.                   ENDM
  210.  
  211.                   MACRO
  212.                   _DBSend
  213.                   _Pack13Call #DBSend
  214.                   ENDM
  215.  
  216.                   MACRO
  217.                   _DBSendItem
  218.                   _Pack13Call #DBSendItem
  219.                   ENDM
  220.  
  221.                   MACRO
  222.                   _DBExec
  223.                   _Pack13Call #DBExec
  224.                   ENDM
  225.  
  226.                   MACRO
  227.                   _DBState
  228.                   _Pack13Call #DBState
  229.                   ENDM
  230.  
  231.                   MACRO
  232.                   _DBGetErr
  233.                   _Pack13Call #DBGetErr
  234.                   ENDM
  235.  
  236.                   MACRO
  237.                   _DBBreak
  238.                   _Pack13Call #DBBreak
  239.                   ENDM
  240.  
  241.                   MACRO
  242.                   _DBGetItem
  243.                   _Pack13Call #DBGetItem
  244.                   ENDM
  245.  
  246.                   MACRO
  247.                   _DBUnGetItem
  248.                   _Pack13Call #DBUnGetItem
  249.                   ENDM
  250.  
  251.                   MACRO
  252.                   _DBKill
  253.                   _Pack13Call #DBKill
  254.                   ENDM
  255.  
  256.                   MACRO
  257.                   _DBGetNewQuery
  258.                   _Pack13Call #DBGetNewQuery
  259.                   ENDM
  260.  
  261.                   MACRO
  262.                   _DBDisposeQuery
  263.                   _Pack13Call #DBDisposeQuery
  264.                   ENDM
  265.  
  266.                   MACRO
  267.                   _DBStartQuery
  268.                   _Pack13Call #DBStartQuery
  269.                   ENDM
  270.  
  271.                   MACRO
  272.                   _DBGetQueryResults
  273.                   _Pack13Call #DBGetQueryResults
  274.                   ENDM
  275.  
  276.                   MACRO
  277.                   _DBResultsToText
  278.                   _Pack13Call #DBResultsToText
  279.                   ENDM
  280.  
  281.                   MACRO
  282.                   _DBInstallResultHandler
  283.                   _Pack13Call #DBInstallResultHandler
  284.                   ENDM
  285.  
  286.                   MACRO
  287.                   _DBRemoveResultHandler
  288.                   _Pack13Call #DBRemoveResultHandler
  289.                   ENDM
  290.  
  291.                   MACRO
  292.                   _DBGetResultHandler
  293.                   _Pack13Call #DBGetResultHandler
  294.                   ENDM
  295.  
  296.     ENDIF    ; ...already included